Vue v-if Directive

শর্তসাপেক্ষে একটি উপাদান ফেরত দিতে v-if ব্যবহার করুন

Example

আপনার নিজস্ব Vue সার্ভার পান

শর্তটি 'সত্য' হলে একটি <div> উপাদান তৈরি করতে v-if নির্দেশ ব্যবহার করে।

<div v-if="createImgDiv">
  <img src="/img_apple.svg" alt="apple">
  <p>This is an apple.</p>
</div>

নীচে আরো উদাহরণ দেখুন.

Definition and Usage

v-if নির্দেশিকা শর্তসাপেক্ষে একটি উপাদান ফেরত দিতে ব্যবহৃত হয়।

যখন v-if একটি উপাদানে ব্যবহার করা হয়, তখন এটি অবশ্যই একটি অভিব্যক্তি অনুসরণ করবে:

যখন v-if ব্যবহার করে একটি উপাদান পরিবর্তন করা হয়:

⚠️দ্রষ্টব্য:

একই ট্যাগে v-if এবং v-for ব্যবহার করার পরামর্শ দেওয়া হয় না। যদি একই নির্দেশনায় দুটি নির্দেশ ব্যবহার করা হয়, তাহলে v-for-এর দ্বারা ব্যবহৃত ভেরিয়েবলগুলিতে v-if-এর অ্যাক্সেস নেই কারণ v-for-এর তুলনায় v-if-এর অগ্রাধিকার বেশি।

Directives for Conditional Rendering

এই ওভারভিউ বর্ণনা করে যে কিভাবে শর্তসাপেক্ষ রেন্ডারিংয়ের জন্য ব্যবহৃত বিভিন্ন Vue নির্দেশাবলী একসাথে ব্যবহার করা হয়।

Directive বিস্তারিত
v-if একা ব্যবহার করা যেতে পারে, অথবা v-else-if এবং/অথবা v-else এর সাথে। যদি v-if-এর ভিতরের শর্তটি 'সত্য' হয়, তাহলে v-else-if বা v-else বিবেচনা করা হবে না।
v-else-if v-if বা অন্য v-else-if এর পরে ব্যবহার করতে হবে। যদি v-else-if-এর ভিতরের শর্তটি 'true' হয়, তাহলে পরবর্তী v-else-if বা v-else বিবেচনা করা হয় না।
v-else যদি ইফ-স্টেটমেন্টের প্রথম অংশটি মিথ্যা হয় তবে এই অংশটি কার্যকর হবে। if-স্টেটমেন্টের একেবারে শেষে v-if এবং v-else-if-এর পরে স্থাপন করা উচিত।

More Examples

Example 1

কন্ডিশনাল এক্সপ্রেশন হিসাবে ডেটা অ্যাট্রিবিউটের সাথে v-if ব্যবহার করা, v-else সহ।

<p v-if="typewritersInStock">
  in stock
</p>

<p v-else>
  not in stock
</p>

Example 2

তুলনামূলক পরীক্ষা v-if ব্যবহার করে শর্তসাপেক্ষ অভিব্যক্তি হিসাবে, v-else এর সাথে।

<p v-if="typewriterCount > 0">
  in stock
</p>

<p v-else>
  not in stock
</p>

Example 3

গুদামে টাইপরাইটারের সংখ্যার উপর ভিত্তি করে একটি স্ট্যাটাস বার্তা প্রদর্শন করতে v-else-if এবং v-else-এর সাথে v-if ব্যবহার করা।

<p v-if="typewriterCount>3">
  In stock
</p>

<p v-else-if="typewriterCount>0">
  Very few left!
</p>

<p v-else>
  Not in stock
</p>

Example 4

স্থানীয় জাভাস্ক্রিপ্ট পদ্ধতির সাথে v-if ব্যবহার করা শর্তসাপেক্ষ অভিব্যক্তি হিসাবে, v-else সহ।

<div id="app">
  <p v-if="text.includes('pizza')">The text includes the word 'pizza'</p>
  <p v-else>The word 'pizza' is not found in the text</p>
</div>
data() {
  return {
    text: 'I like taco, pizza, Thai beef salad, pho soup and tagine.'
  }
}

Example 5

API থেকে ডেটা প্রাপ্ত হলে একটি <div> ট্যাগ ফেরত দিতে v-if ব্যবহার করে।

<template>
  <h1>Example</h1>
  <p>Click the button to fetch data with an HTTP request.</p>
  <p>Each click generates an object with a random user from <a href="https://random-data-api.com/" target="_blank">https://random-data-api.com/</a>.</p>
  <p>The robot avatars are lovingly delivered by <a href="http://Robohash.org" target="_blank">RoboHash</a>.</p>
  <button @click="fetchData">Fetch data</button>
  <div v-if="data" id="dataDiv">
    <img :src="data.avatar" alt="avatar">
    <pre>{{ data.first_name + " " + data.last_name }}</pre>
    <p>"{{ data.employment.title }}"</p>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        data: null,
      };
    },
    methods: {
      async fetchData() {      
        const response = await fetch("https://random-data-api.com/api/v2/users"); 
        this.data = await response.json();
      },    
    }
  };
</script>

<style>
#dataDiv {
  width: 240px;
  background-color: aquamarine;
  border: solid black 1px;
  margin-top: 10px;
  padding: 10px;
}
#dataDiv > img {
  width: 100%;
}
pre {
  font-size: larger;
  font-weight: bold;
}
</style>

Example 6

একটি উপাদান তৈরি করতে v-if ব্যবহার করে যাতে মাউন্ট করা লাইফসাইকেল হুক ট্রিগার হয়।

CompOne.vue:

<template>
    <h2>Component</h2>
    <p>Right after this component is added to the DOM, the mounted() function is called and we can add code to that mounted() function. In this example, an alert popup box appears after this component is mounted.</p>
    <p><strong>Note:</strong> The reason that the alert is visible before the component is visible is because the alert is called before the browser gets to render the component to the screen.</p>
  </template>
  
  <script>
  export default {
    mounted() {
      alert("The component is mounted!");
    }
  }
  </script>
App.vue:

<template>
  <h1>The 'mounted' Lifecycle Hook</h1>
  <button @click="this.activeComp = !this.activeComp">Create component</button>
  <div>
    <comp-one v-if="activeComp"></comp-one>
  </div>
</template>

<script>
export default {
  data() {
    return {
      activeComp: false
    }
  }
}
</script>

<style scoped>
  div {
    border: dashed black 1px;
    border-radius: 10px;
    padding: 20px;
    margin: 10px;
    width: 400px;
    background-color: lightgreen;
  }
</style>

Example 7

<p> উপাদানটি পরিবর্তন করতে v-if ব্যবহার করে যাতে অ্যানিমেশনগুলি ট্রিগার হয়।

<template>
  <h1>Add/Remove <p> Tag</h1>
  <button @click="this.exists = !this.exists">{{btnText}}</button><br>
  <Transition>
    <p v-if="exists">Hello World!</p>
  </Transition>
</template>

<script>
export default {
  data() {
    return {
      exists: false
    }
  },
  computed: {
    btnText() {
      if(this.exists) {
        return 'Remove';
      }
      else {
        return 'Add';
      }
    }
  }
}
</script>

<style scoped>
  .v-enter-from {
    opacity: 0;
    translate: -100px 0;
  }
  .v-enter-to {
    opacity: 1;
    translate: 0 0;
  }
  .v-leave-from {
    opacity: 1;
    translate: 0 0;
  }
  .v-leave-to {
    opacity: 0;
    translate: 100px 0;
  }
  p {
    background-color: lightgreen;
    display: inline-block;
    padding: 10px;
    transition: all 0.5s;
  }
</style>

Exercise

প্রশিক্ষণ:

Vue.js v-if v-for ?

এটি কোডটি ধীর করে দেয়
✗ ভুল! গতি প্রধান কারণ নয়
v-if এর v-for ভেরিয়েবলে অ্যাক্সেস নেই কারণ v-if এর অগ্রাধিকার বেশি
✓ ঠিক আছে! v-যদি উচ্চতর অগ্রাধিকার থাকে, তাই v-এর জন্য ভেরিয়েবলের অ্যাক্সেস নেই
এটি Vue সংস্করণে কাজ করে না
✗ ভুল! এটি প্রযুক্তিগতভাবে কাজ করে, কিন্তু সুপারিশ করা হয় না
এটি ওয়েব ব্রাউজারে ত্রুটি তৈরি করে
✗ ভুল! এটি ত্রুটি তৈরি করে না, তবে অপ্রত্যাশিত আচরণের কারণ হতে পারে